Nodejs 之 Mongoskin + jquery.ajax实现集合查询参数化
- jquery选择器 获取ejs模板前端的集合名称 ;
- 使用jquery.ajax将集合名称post到restful路由
- 使用Mongoskin参数化方式,利用ajax post进来的数据(collection)进行查询,将查询结果send回去,利用ajax的success回调函数进行数据处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| var collectionName = $(this).find('span.collectionName').text(); $.ajax({ type:'post', url:'/showDocsOfCot', cache:false, data:{collection:collectionName}, timeout:5000, success:function(data){ if(data){ var jsonKeys = {},tempKeys=[]; data.forEach(function(data){ for(var key in data){ if(!jsonKeys[key]){ jsonKeys[key]=true; tempKeys.push(key); } } }); alert(tempKeys); console.log(tempKeys); }else{ console.log("没有数据"); } }, }); router.post('/showDocsOfCot',function(req,res,next){ var collectionName = req.body.collection; db.open(function(err,db){ db.collection(collectionName,{strict:true},function(err,myCollection){ if(err){ console.log(collectionName+"连接失败"+err); } else{ myCollection.find({}).toArray(function (err, docs) { if (err) { console.log("查询失败" + err); } else { res.send(docs); } }); } }); }); });
|
遇到的问题:如何将jquery.ajax回调函数处理过的返回数据嵌入到ejs页面上去呢?<%=data.*%>